package com.xxgc.springboot.task;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

/**
 * @program: springboot
 * @description:
 * @author: Mr.abel(ShiJiaYi)
 * @create: 2022-09-19 20:46
 **/
public class QuartzTest {
    // 周1-周3 晚上 21点30-21点40 每10秒钟 打印一下
    // 0/10 13-23 14 * * 1-3
    public static void main(String[] args) throws SchedulerException {
        //给打工人传递参数
        JobDataMap jobDataMap = new JobDataMap();
        jobDataMap.put("受谁指使","陈浩南");

        // 工作策略 作用：用来对工作进行分类管理
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                .withIdentity("JobDetailName", "JobDetailGroup")
                .usingJobData(jobDataMap)//让他打工的时候给他带句话
                .build();

        // 触发器  作用：在里面填写工作的出发时机/触发条件
        // SimpleScheduleBuilder.repeatSecondlyForever(5)
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("TriggerName", "TriggerGroup")
                .startNow()
                .withSchedule(CronScheduleBuilder.cronSchedule("0/10 58-59 14 ? * 1-3"))
                .build();
        // 调度器
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        // 将工作策略与触发器相关联
        scheduler.scheduleJob(jobDetail, trigger);
        // 启动调度器
        scheduler.start();
    }
}
